home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 51 / Amiga Format CD51 (2000-03-10)(Future Publishing)(GB)[!][issue 2000-04].iso / -in_the_mag- / workbench / term_4.8 / extras / source / gtlayout-source.lha / LTP_Delay.c < prev    next >
C/C++ Source or Header  |  1997-05-08  |  979b  |  48 lines

  1. /*
  2. **    GadTools layout toolkit
  3. **
  4. **    Copyright © 1993-1997 by Olaf `Olsen' Barthel
  5. **        Freely distributable.
  6. **
  7. **    :ts=4
  8. */
  9.  
  10. #ifndef _GTLAYOUT_GLOBAL_H
  11. #include "gtlayout_global.h"
  12. #endif
  13.  
  14. #include "Assert.h"
  15.  
  16. VOID
  17. LTP_Delay(ULONG Seconds,ULONG Micros)
  18. {
  19.     struct MsgPort         TimePort;
  20.     struct timerequest    TimeRequest;
  21.  
  22.     memset(&TimePort,0,sizeof(TimePort));
  23.  
  24.     NewList(&TimePort.mp_MsgList);
  25.  
  26.     TimePort.mp_Flags    = PA_SIGNAL;
  27.     TimePort.mp_SigBit    = SIGB_SINGLE;
  28.     TimePort.mp_SigTask    = FindTask(NULL);
  29.  
  30.     memset(&TimeRequest,0,sizeof(TimeRequest));
  31.  
  32.     TimeRequest.tr_node.io_Message.mn_ReplyPort    = &TimePort;
  33.     TimeRequest.tr_node.io_Message.mn_Length    = sizeof(struct timerequest);
  34.  
  35.     if(!OpenDevice(TIMERNAME,UNIT_VBLANK,&TimeRequest,NULL))
  36.     {
  37.         TimeRequest.tr_node.io_Command    = TR_ADDREQUEST;
  38.         TimeRequest.tr_time.tv_secs     = Seconds;
  39.         TimeRequest.tr_time.tv_micro    = Micros;
  40.  
  41.         SetSignal(0,SIGF_SINGLE);
  42.         SendIO(&TimeRequest);
  43.         WaitIO(&TimeRequest);
  44.  
  45.         CloseDevice(&TimeRequest);
  46.     }
  47. }
  48.